/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Pesistencia;

import BancoDados.BancoDados;
import Entidade.FornecedorModel;
import java.sql.ResultSet;
import java.util.ArrayList;

/**
 *
 * @author Thalyta
 */
public class FornecedorPersistencia {
    
      
       BancoDados bd;
       private BancoDados banco = new BancoDados();
      EnderencoPersistencia endrecos ;

    public FornecedorPersistencia(EnderencoPersistencia endrecos) {
        bd = new BancoDados();
       this.endrecos = endrecos;
    }
          
  public ArrayList<FornecedorModel> getListaProdutos() {
      
      
        try {
            ResultSet rs = bd.consultar("SELECT * FROM fornecedor");
            ArrayList<FornecedorModel> retorno = new ArrayList<>();
            while(rs.next()){
                
                
                 FornecedorModel p = new FornecedorModel(rs.getInt("codFornecedor"), rs.getString("nome"),rs.getString("CNPJ"),rs.getString("inscEst"),rs.getInt("codEndereco"),rs.getString("Telefone"));
                        
                 retorno.add(p);
            }
            return retorno;
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
    }

    public FornecedorPersistencia(BancoDados bd) {
        this.bd = bd;
    }

    public void cadastrar( FornecedorModel fornecedor) {
        try {
            bd.atualizar("INSERT INTO fornecedor (codFornecedor,nome,CNPJ,inscEst,codEndereco,Telefone) VALUES ("+fornecedor.getCodigo()+" ,'"+fornecedor.getNome()+"' ,'"+fornecedor.getCnpj()+"' ,'"+fornecedor.getInsc_est()+"',"+fornecedor.getEndereco()+",'"+fornecedor.getTelefone()+"')");

            System.out.println("INSERT INTO fornecedor (codFornecedor,nome,CNPJ,inscEst,codEndereco,Telefone) VALUES ("+fornecedor.getCodigo()+" ,'"+fornecedor.getNome()+"' ,'"+fornecedor.getCnpj()+"' ,'"+fornecedor.getInsc_est()+"','"+fornecedor.getEndereco()+"','"+fornecedor.getTelefone()+"')"); } 
        
        catch (Exception e) {
       
            e.printStackTrace();
          }
        
        
    }

    public  FornecedorModel buscar(int codigo) {
        try {
            ResultSet rs = bd.consultar("SELECT * FROM fornecedor WHERE codFornecedor = "+codigo);
            rs.next();
             FornecedorModel retorno;
            if(rs.getRow() == 0){
                retorno = null;
            } else {
                retorno =new FornecedorModel(rs.getInt("codFornecedor"), rs.getString("nome"),rs.getString("CNPJ"),rs.getString("inscEst"),rs.getInt("codEndereco"),rs.getString("Telefone"));
                        }
            return retorno;
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
    }   

    public int recuperarUltimoCodigo() {
        try {
            ResultSet rs = bd.consultar("SELECT MAX(codFornecedor) FROM fornecedor");
            rs.next();
            int retorno;
            if(rs.getRow() == 0){
                retorno = 0;
            } else {
                retorno = rs.getInt("MAX(codFornecedor)");
            }
            return retorno;
        } catch (Exception e) {
            e.printStackTrace();
            return -1;
        }
    }

    public void excluir(FornecedorModel fornecedor) {
        try {
            bd.atualizar("DELETE FROM fornecedor WHERE (codFornecedor = "+fornecedor.getCodigo()+")");

            System.out.println("DELETE FROM fornecedor WHERE (codFornecedor = "+fornecedor.getCodigo()+")");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    public void editar(FornecedorModel f) {
        try {
            
            
            bd.atualizar("UPDATE fornecedor SET nome = "+"'"+ f.getNome() +"'"+", CNPJ = '"+f.getCnpj()+"',Codendereco ="+ f.getEndereco()+",InscEst = '"+f.getInsc_est()+ "', telefone =  "+"'" + f.getTelefone() +"'"+" WHERE (codfornecedor = "+f.getCodigo()+")");

            System.out.println("UPDATE fornecedor SET nome = "+"'"+ f.getNome() +"'"+", CNPJ = "+f.getCnpj()+",Codendereco ="+ f.getEndereco()+",InscEst = "+"'"+f.getInsc_est()+ " telefone =  "+"'" + f.getTelefone() +"'"+" WHERE (codfornecedor = "+f.getCodigo()+")");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    
}
